import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)


// 创建路由对象
const router = new VueRouter({
    routes: [
        // name path component redirect,children
        {
            name: 'login',
            path: '/login',
            // 组件使用异步加载的方式，只有用到了这个组件才进行组件的加载
            component: () => import('@/views/login.vue')
        },
        {
            name: 'index',
            path: '/index',
            // 组件使用异步加载的方式，只有用到了这个组件才进行组件的加载
            component: () => import('@/views/index.vue'),
            // 添加重定向，让首页路由匹配的时候，再重定向到嵌套路由welcome
            // 使用redirect的时候，如果使用path则需要完整的嵌套路由的路径
            // redirect: { path: '/index/welcome' },
            redirect: { name: 'welcome' },
            // 使用children设置嵌套路由
            children: [
                {
                    name: 'welcome',
                    path: 'welcome',
                    component: () => import('@/views/welcomeYou.vue')
                },
                {
                    name: 'postlist',
                    path: 'postlist',
                    component: () => import('@/views/postlist.vue')
                },
                {
                    //这是文章的发布
                    name: 'PostPublish',
                    path: 'postPublish',
                    component: () => import('@/views/postPublish.vue')
                }
            ]
        }
    ]
})

import { Message } from 'element-ui'
// 添加导航守卫，除了登录之外的所有页面都需要进行token的验证
router.beforeEach((to, from, next) => {
    console.log(to)
    if (to.name == 'login') { // 说明去登陆,直接跳转
        next()
    } else { // 说明需要验证的页面
        let token = JSON.parse(localStorage.getItem('heima_56') || "{}").token
        if (token) {
            next()
        } else {
            Message('未登录，请先登录')
            next({ path: '/login' })
        }
    }
})


// 暴露
export default router